package org.lestr.secuel.noyau.systemeLogique.effets;

import org.jdom.Element;

import org.lestr.secuel.m3ds.objets3D.Objet3D;

public class EffetObjet3DDeplacement extends EffetAbstrait {

	
	// Définition de constantes
	private static final long serialVersionUID = 1L;

	
	// Déclaration des attributs
	private Objet3D objet;
	private float deltaX;
	private float deltaY;
	private float deltaZ;
	
	
	/** Constructeur */
	public EffetObjet3DDeplacement(){
		
		// Instanciation des attributs
		objet = null;
		deltaX = 0;
		deltaY = 0;
		deltaZ = 0;
		
		// Défini le nom
		setTypeNom("Objet 3D - Déplacement");
		
	}// FIN Constructeur
	
	
	/** Applique l'effet */
	public void appliquer(){
		
		// Si un objet cible est défini
		if(objet != null){
			
			objet.setX(objet.getX() + deltaX);
			objet.setY(objet.getY() + deltaY);
			objet.setZ(objet.getZ() + deltaZ);
			
		}
		
	}// FIN appliquer
	
	
	/** Défini l'objet */
	public void defObjet(Objet3D objet){
		
		// Mémorise
		this.objet = objet;
		
	}// FIN defObjet
	
	
	/** Retourne l'objet */
	public Objet3D retObjet(){
		
		return objet;
		
	}// FIN retObjet
	
	
	// Accesseurs
	public float retDeltaX() {
		return deltaX;
	}
	public void defDeltaX(float deltaX) {
		this.deltaX = deltaX;
	}
	public float retDeltaY() {
		return deltaY;
	}
	public void defDeltaY(float deltaY) {
		this.deltaY = deltaY;
	}
	public float retDeltaZ() {
		return deltaZ;
	}
	public void defDeltaZ(float deltaZ) {
		this.deltaZ = deltaZ;
	}


	@Override
	public void charger(Element xml) {
		// TODO Auto-generated method stub
		
	}


	@Override
	public Element compiler() {
		// TODO Auto-generated method stub
		return null;
	}
	

}// FIN Classe
